const AdminModel = require('../../model/AdminModel');

// 登录
const login = async (req, res) => {
    let { username, password } = req.body
    // 测试
    console.log('登录------>', username, password);
    try {
        let user = await AdminModel.where({ username, password }).findOne();
        console.log('查找数据库是否有当前用户', user);
        if (user && user.username == username && user.password == password) {
            res.json({
                message: "登录成功！",
                status: 200,
                // 封装 签名token的方法 
                token: req.sign({
                    id: user._id,
                    username: user.username,
                    role: user.role,
                    status: user.status,
                    uImage: user.uImage
                })
            });
        } else {
            res.json({
                status: 400,
                message: '登录失败！',
                req
            })
        }
    } catch (err) {
        console.log('登录失败信息---->', err);
        res.json({
            status: 500,
            message: "登录失败!稍后重试!"
        });
    }
};
// 注册
const register = async (req, res) => {
    // 获取请求数据对象
    const postData = req.body;
    console.log('获取请求数据对象----->', postData);
    // 给初始值，
    postData.role = 2; //普通用户
    postData.status = 1; //允许登录
    try {
        // 不能重名
        console.log('注册信息————————>', postData);
        let result = await AdminModel.where({ username: postData.username }).findOne()
        if (result) {
            res.json({
                status: 500,
                message: "账号已被注册!"
            });
            return;
        }
        console.log('注册信息---->', postData);
        // 没有重复的在注册
        await AdminModel.create(postData);
        res.json({
            msg: '注册成功！',
            status: 200
        });
    } catch (err) {
        console.log('错误信息-------------->', err.errors.properties);
        let errormessage = '';
        let errorTips = '';
        for (var key in err.errors) {
            errormessage += err.errors[key].message;
            // errorTips += err.err.errors[key].tips;
            // console.log("tip--------------", key, err.errors[key].message);
            // console.log("tip--------------", key, err.errors[key]);
        }
        res.json({
            status: 500,
            message: errormessage,
            // tips: errorTips
        });
    }
};
// 获取用户消息
const userinfo = async (req, response) => {
    // 根据token获取的用户数据存储在request.user里面. 是你登录成功时候签名的数据.
    // console.log("user===>", req.user); //req.user 类似 session
    response.json(req.user);
};
module.exports = {
    login,
    register,
    userinfo
}